每天的專案會同步到 gitlab 上,可以前往 這個網址
如果對於專案有興趣或是想討論一些問題,歡迎留言 OR 來信討論,信箱為:nickchen1998@gmail.com
本次鐵人賽撰寫的目標為 python 與自動化測試,製作過程預計的時程如下
主題 | 日程 |
---|---|
簡介 | day 01 |
Pytest | day 02 ~ 10 |
TDD | day 11 ~ 12 |
Selenium | day 13 ~ 17 |
Appium | day 18 ~ 21 |
CI/CD | day 22 ~ 26 |
Jenkins (視情況增減內容) | day 27 ~ 29 |
結語 | day 30 |
Pytest 是一種使用在 Python 語言裡面的一中單元測試框架,而 Pytest 基本上就是由 Python 原生自帶的單元測試框架 Unittest 衍生出來的,所以可以看到有些範例可以和 Unittest 的套件互相兼容混用。
Pytest 和 Unittest 相比,有下列幾項優點:
本次鐵人賽針對 Pytest 的撰寫方向大約分為下面幾個目標:
TDD 完整名稱為 Test-driven development,中譯為 "測試驅動開發",是一種軟體開發的方式,以這種模式開發的軟體,會需要在開發程式的同時一併撰寫測試程式,簡單來說就是一個 function 產出就要產出一個相對應的 testcase,好處是可以快速的檢查各項功能有沒有發生錯誤,也可以避免在開發完成後再回來補血測試程式,造成某些功能遺漏沒有測到。
針對 TDD 開發模式的部分,會利用兩天的篇幅分別講解理論並且實作一份簡單的專案來進行展示。及撰寫方向及
相信很多人對於 Selenium 並不陌生,近年來很常被應用在網路爬蟲上,可以比較簡單的對動態網頁進行爬取,而在這次的鐵人賽當中,我們要讓 Selenium 回歸本業,Selenium 最初被開發出來的時候,其實是拿來進行網頁自動化測試的,下面將介紹本次鐵人賽 Selenium 的撰寫方向。
下面為本次鐵人賽中 Selenium 的撰寫方向:
Appium 顧名思義,適用於測試手機 APP 的一個自動化測試的工具,是一個 Open Source 的專案,Appium 提供跨平台的操作,亦即它可以同時測試 IOS 以及 Android 甚至是 Desktop 的 APP,本次的鐵人賽當中會介紹該如何使用 Appium 對手機 APP 進行自動化測試。
CI/CD 是一種開發模式,其為兩個部分組成,分別為 CI 持續整合 & CD 持續部屬所組成,簡單來講就是將程式測試、部屬自動化,可以加速軟體的開發並且由於在開發時每次對專案進行 commit 的時候都會依照寫好的測試腳本對程式碼進行測試,也可以降低專案上線後發生錯誤的機率。
本次鐵人賽將針對下列這些方向進行撰寫:
這個部分會視情況進行篇幅的增加或減少,甚至刪除,不過希望還是最少會留兩篇進行講解跟使用介紹
除了 Gitlab、Github 之外,Jenkins 也是目前主流的 CI/CD 工具之一,由於 Jenkins 也是開源專案,因此發展速度非常快,也非常容易上手,這邊將花幾天的時間來介紹該如何進行 Jenkins 的操作以及環境的建置